package com.cj.dao;

import com.cj.po.Visitor;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 访客DAO层接口
 */
public interface VisitorDao {

    /**
     * 根据访客ID查找访客信息
     * @param v_id 访客ID
     * @return 返回匹配的访客对象
     */
    Visitor findVisitorById(Integer v_id);

    /**
     * 获取所有访客信息
     * @return 返回所有访客的信息列表
     */
    List<Visitor> getAll();

    /**
     * 根据访客姓名进行分页查询
     * @param v_name 访客姓名
     * @param currentPage 当前页码
     * @param pageSize 每页显示的记录数
     * @return 返回指定页码的访客列表
     */
    List<Visitor> getVisitorList(@Param("v_name") String v_name,
                                 @Param("currentPage") Integer currentPage,
                                 @Param("pageSize") Integer pageSize);

    /**
     * 统计符合条件的访客总数
     * @param v_name 访客姓名
     * @return 返回符合条件的访客总数
     */
    Integer totalVisitorCount(@Param("v_name") String v_name);

    /**
     * 添加访客信息
     * @param visitor 要添加的访客对象
     * @return 返回添加结果，成功返回1，失败返回0
     */
    int addVisitor(Visitor visitor);

    /**
     * 删除访客信息
     * @param v_id 要删除的访客ID
     * @return 返回删除的结果，成功返回1，失败返回0
     */
    int deleteVisitor(Integer v_id);

    /**
     * 更新访客信息
     * @param visitor 要更新的访客对象
     * @return 返回更新的结果，成功返回1，失败返回0
     */
    int updateVisitor(Visitor visitor);
}
